<%@ page contentType="text/javascript" pageEncoding="UTF-8" %>
<%@ page import="util.*" %>
<%@ page import="entidades.*" %>
<%@ page import="java.util.List" %>
<%@ page import="java.util.Date" %>
<%@ page import="java.util.HashMap" %>

// <script type="text/javascript">
var listaOrdenes = null;
var form = null;

jQuery(document).ready(function()
	{ 
	form = jQuery("#form_edicion");
	
	// Botón 'Eliminar'.
	jQuery(form).find("button[name='eliminar']").click(function()
		{
		var id = jQuery(form).find("input[name='id']").val();
		
		if(id != '')
			{
			// Deshabilito los botones.
			jQuery(form).find("button").attr("disabled", "disabled");
		
			jQuery.ajax(
				{
				type: 'POST',
				url: 'svcs/ciclos-uteco.jsp',
				dataType: 'json',
				data: {'service': 'delete',
					   'id' : id},
				success: function(data, code, xmlHttpRequest)
					{
					// Verifico si la operacion fue exitosa o no.
					if(data.code == '0')
						{ document.location.href = jQuery(form).find("input[name='volver_url']").val(); }
					else
						{
						jQuery(form).find("button").removeAttr("disabled");
						mostrarMsj("Error",data.msj);
						}
					},
				error: function(xmlHttpRequest, type)
					{
					jQuery(form).find("button").removeAttr("disabled");
					mostrarMsj("Error","No se pudo establecer la conexión con el servidor: " + type + " " + xmlHttpRequest.status + " (" + xmlHttpRequest.statusText + ")");
					}
				});			
			}
		return false;
		});
	
	// Botón 'Guardar'.
	jQuery(form).find("button[name='guardar']").click(function()
		{
		jQuery(form).find("input[name='accion']").val("guardar");
		
		if(listaOrdenes != null && listaOrdenes.huboCambios())
			{ jQuery(form).find("input[name='ids']").val(listaOrdenes.getIds()); }
		else
			{ jQuery(form).find("input[name='ids']").val(''); }
			
		jQuery(form).submit();
		return false;
		});
	
	// Botón 'Volver'
	jQuery(form).find("button[name='volver']").click(function()
		{
		document.location.href = jQuery(form).find("input[name='volver_url']").val();
		return false;
		});
	
	// Verifico si es un alta o una modificación.
	var id = jQuery(form).find("input[name='id']").val();

	if(id != '')
		{
		<% {
		String orders = "";
		List<OrdenTrabajo> ordenes = OrdenTrabajo.listarCicloUteco(Integer.parseInt(request.getParameter("id")));
		
		for(int i=0; i<ordenes.size(); i++)
			{
			OrdenTrabajo o = ordenes.get(i);
			
			if(i!=0) orders += ", ";
			orders += "{";
			orders += "'id': " + o.getId() + ", ";
			orders += "'identificador': " + o.getIdentificador() + ", ";
			orders += "'metros': " + o.getMetros() + ", ";
			orders += "'tipoPapel': '" + o.getOrdenVenta().getTipoPapel().toString().replace("'","\\'") + "', ";
			orders += "'manija': '" + o.getOrdenVenta().getManija() + "', ";
			orders += "'cantidadColores': " + o.getOrdenVenta().getCantidadColores() + ", ";
			orders += "'lacaUv': '" + o.getOrdenVenta().getLacaUv().toString().replace("'","\\'") + "', ";
			orders += "'barniz': " + o.getOrdenVenta().isBarniz() + ", ";
			orders += "'logotipo': '" + o.getOrdenVenta().getLogotipo().toString().replace("'","\\'") + "', ";
			orders += "'formato': '" + o.getFormato().toString().replace("'","\\'") + "'";
			orders += "}";
			}

		if(orders.length() > 0)
			{
			%>
			// Inicializo el listado de ordenes.
			listaOrdenes = new ListaOT("td_planificacion_ordenes", "uteco");
			listaOrdenes.setFechaFin(getFechaFin());
			listaOrdenes.setFechaInicio(getFechaInicio());
			listaOrdenes.setCapacidad(getCapacidad());
			listaOrdenes.setOrdenes(new Array(<%= orders %>));
			listaOrdenes.insertarHtml();						
			<%
			}
		} %>
		}
	else
		{
		// Al cambiar el uteco, actualizo el número de ciclo y las fechas.
		jQuery(form).find("select[name='uteco']").change(function()
			{
			var uteco = jQuery(this).val();	
			
			jQuery.ajax(
				{
				type: 'POST',
				url: 'svcs/ciclos-uteco.jsp',
				dataType: 'json',
				data: {'service': 'new',
					   'uteco' : uteco},
				success: function(data, code, xmlHttpRequest)
					{
					// Verifico si la operacion fue exitosa o no.
					if(data.code == '0')
						{
						jQuery(form).find("input[name='fecha_inicio']").val(data.fecha_inicio);
						jQuery(form).find("input[name='fecha_inicio_min']").val(data.fecha_inicio);
						jQuery(form).find("input[name='fecha_fin']").val(data.fecha_fin);
						jQuery(form).find("input[name='fecha_fin_min']").val(data.fecha_inicio);
						jQuery(form).find("input[name='numero']").val(data.numero);
						jQuery(form).find("input[name='capacidad']").val(formatoNumero(data.capacidad));
						}
					},
				error: function(xmlHttpRequest, type) {}
				});			
			});
		jQuery(form).find("select[name='uteco']").change();
		}
	
	// Al cambiar la fecha de inicio o de fin, busco la nueva capacidad y controlo los valores mínimos.
	jQuery("input.fecha").change(function()
		{
		// Verifico que la fecha no sea menor a su mínimo.
		var fechaMin = jQuery(form).find("input[name='"+jQuery(this).attr("name")+"_min']").val();
		fechaMin = convertirFechaHora(fechaMin + ":00");
		
		var fecha = jQuery(this).val();
		if(fecha.length <= 10) fecha += " 00:00";
		fecha = convertirFechaHora(fecha + ":00");

		if(fecha < fechaMin)
			{
			fecha = fechaMin;
			jQuery(this).val(jQuery(form).find("input[name='"+jQuery(this).attr("name")+"_min']").val());
			}

		if(listaOrdenes != null)
			{
			listaOrdenes.setFechaInicio(getFechaInicio());
			listaOrdenes.setFechaFin(getFechaFin());
			}

		jQuery.ajax(
			{
			type: 'POST',
			url: 'svcs/ciclos-uteco.jsp',
			dataType: 'json',
			data: {'service': 'capacidad',
				   'uteco' : getUteco(),
				   'fecha_inicio': (getFechaInicioToString() + ":00"),
				   'fecha_fin': (getFechaFinToString() + ":00"),
				   'metros': getMetros()},
			success: function(data, code, xmlHttpRequest)
				{
				if(data.code == '0')
					{
					jQuery(form).find("input[name='capacidad']").val(formatoNumero(data.capacidad));
				
					if(getMetros() > 0)
						{
						jQuery(form).find("input[name='fecha_fin_min']").val(data.fecha_fin_min);
						if(getFechaFin() < getFechaFinMin())
							{ jQuery(form).find("input[name='fecha_fin']").val(jQuery(form).find("input[name='fecha_fin_min']").val()); }
						}

					if(listaOrdenes != null)
						{ 
						listaOrdenes.setFechaInicio(getFechaInicio());
						listaOrdenes.setFechaFin(getFechaFin());
						listaOrdenes.setCapacidad(parseInt(data.capacidad, 10));
						listaOrdenes.calcularFechasYDisponible();
						}
					}
				},
			error: function(xmlHttpRequest, type) {}
			});	
		});	
	});

function getCapacidad()
	{ return parseInt(jQuery(form).find("input[name='capacidad']").val().replace(/\./g, ''), 10); }

function getMetros()
	{
	if(jQuery(form).find("input[name='metros']").size() > 0)
		{ return parseInt(jQuery(form).find("input[name='metros']").val().replace(/\./g, ''), 10); }
	return 0;
	}

function getUteco()
	{
	if(jQuery(form).find("input[name='uteco']").size() > 0)  return jQuery(form).find("input[name='uteco']").val()
	if(jQuery(form).find("select[name='uteco']").size() > 0)  return jQuery(form).find("select[name='uteco']").val()
	return '0';
	}

function getFechaInicio()
	{ return convertirFechaHora(getFechaInicioToString() + ":00"); }

function getFechaFin()
	{ return convertirFechaHora(getFechaFinToString() + ":00"); }

function getFechaInicioToString()
	{
	var fecha = jQuery(form).find("input[name='fecha_inicio']").val();
	if(fecha.length<=10) fecha += " 00:00";
	return fecha;
	}

function getFechaFinToString()
	{
	var fecha = jQuery(form).find("input[name='fecha_fin']").val();
	if(fecha.length<=10) fecha += " 00:00";
	return fecha;
	}
	
function getFechaInicioMin()
	{ return convertirFechaHora(jQuery(form).find("input[name='fecha_inicio_min']").val() + ":00"); }
	
function getFechaFinMin()
	{ return convertirFechaHora(jQuery(form).find("input[name='fecha_fin_min']").val() + ":00"); }	
// </script>